A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records available to the public, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
The present invention relates to communications systems and, in particular, to a communication system employing a TAPI interface.
2. Description of the Related Art
The Telephony Application Programming Interface (TAPI) is a high level programming interface for Windows(trademark) which supports many types of telephony applications associated with conventional analog public telephone lines, PBX phone lines, ISDN phone lines, and the like. Thus, TAPI allows a communication application to support numerous telephony operations through a variety of mediums by making a function call to TAPI which will drive the hardware (fax/modem card, DSP card, network switch, and the like) coupled thereto.
The TAPI architecture 100 is illustrated in FIG. 1. As shown, the TAPI architecture 100 includes a TAPI implementation 104 interfaced to telephony application programs 102. TAPI 104 provides a connection to a TAPI service provider, such as a TAPI server 106, which then interfaces to hardware such as voice cards 108a, H.323 interfaces 108b, or PBX""s 108c. 
Typically, TAPI service provides have developed using non object oriented computer languages. Conventionally, for each service provider 106, a separate and unique internal control database has been developed, which results in increased development time, little code reuse, and longer test cycles.
These and other drawbacks in the prior art are overcome in large part by a TAPI database system and method according to the present invention. According to one implementation, an object-oriented TAPI database is provided which supports code re-use when used in other TAPI service providers. The database models all the major objects in TAPI telephony staticxe2x80x94line, static phone, static addresses, open lines, open phones, open addresses, calls and request Ids.
Objects are modeled using free and in-use lists and are linked in the common TAPI relationships, allowing for quick retrieval of information from one object while accessing another object. Objects are searched using a efficient two-tiered search. Telephony objects follow a class hierarchy that allows for the efficient usage of common data and routines. Telephony objects are divided with areas for distinct sets of TAPI data, TAPI service provider data, and private TAPI data. Management objects follow a class hierarchy that allows for the efficient usage of common management data and routines and common operation upon telephony objects.